﻿/*
 				________________________________COPYRIGHT_______________________________________
				Die Veröffentlichung dieses Objektes ist Illegal und wird strafrechtlich verfolgt
				werden. Sollte es zu einer Veröffentlichung kommen werden wir die Daten des
				Herrausgebers fündig machen und Anzeige erstatten. Desweiteren ist
				auch jeglicher Besitz dieses Objektes Illegal und kann ebenfalls als Grund für
				eine Anzeige verwendet werden.
				Ausnahmen der veröffentlichung und verleihung gelten nur wenn der Grundbesitzer
				diese durchführt.
				Die Uhrheberrechte dieses Objektes liegen der Entwickler Gruppe CyberScripting vor. 
                © 2011.
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using cubeworld.GUI;

namespace cubeworld.ScreenManager
{
    class TitleScreen: Screen
    {
        List<Button> buttons = new List<Button>();
        Textbox _textBox;

        Rectangle[,] rects = new Rectangle[12, 10];

        //Events
        private void newWorld_onClick(object sender, EventArgs e)
        {
            Data.SetScreen(new NewWorldScreen());
        }

        private void loadWorld_onClick(object sender, EventArgs e)
        {
            Data.SetScreen(new LoadScreen());
        }

        private void Options_onClick(object sender, EventArgs e)
        {
            Data.SetScreen(new Options());
        }

        private void quit_onClick(object sender, EventArgs e)
        {
            //MainGame.isClosed = true;
        }

        public override void Init()
        {
            Button newWorld = new Button("screen.title.newWorld", 
                new Vector2(Data.graphics.PreferredBackBufferWidth * 0.5f - (Data.buttonNormal.Width / 2), 80));
            //Event
            newWorld.OnClick += new ClickEventHandler(newWorld_onClick);
            if (Functions.existWorld())
            {
                Button loadWorld = new Button("screen.title.loadWorld",
                    new Vector2(Data.graphics.PreferredBackBufferWidth * 0.5f - (Data.buttonNormal.Width / 2), 114));
                loadWorld.OnClick += new ClickEventHandler(loadWorld_onClick);
                Button Options = new Button("screen.title.options", 
                    new Vector2(Data.graphics.PreferredBackBufferWidth * 0.5f - (Data.buttonNormal.Width / 2), 150));
                Options.OnClick += new ClickEventHandler(Options_onClick);
                Button quit = new Button("screen.title.exit", 
                    new Vector2(Data.graphics.PreferredBackBufferWidth * 0.5f - (Data.buttonNormal.Width / 2), 188));
                quit.OnClick += new ClickEventHandler(quit_onClick);

                buttons.Add(newWorld);
                buttons.Add(loadWorld);
                buttons.Add(quit);
                buttons.Add(Options);
            }
            else
            {
                Button quit = new Button("Quit", 
                    new Vector2(Data.graphics.PreferredBackBufferWidth * 0.5f - (Data.buttonNormal.Width / 2), 154));
                quit.OnClick += new ClickEventHandler(quit_onClick);
                Button Options = new Button("Options", 
                    new Vector2(Data.graphics.PreferredBackBufferWidth * 0.5f - (Data.buttonNormal.Width / 2), 115));
                Options.OnClick += new ClickEventHandler(Options_onClick);

                buttons.Add(newWorld);
                buttons.Add(quit);
                buttons.Add(Options);
            }

            for (int x = 0; x < 12; x++)
            {
                for (int y = 0; y < 10; y++)
                {
                    rects[x, y] = new Rectangle(x * 100, y * 100, 200, 200);
                }
            }

            Data.changeMouse(true);

            _textBox = new Textbox(new Vector2(10,10), 30, Data.debugFont);
            
            
            base.Init();
        }

        public override void Render(float elapsedTime)
        {


            for (int x = 0; x < 12; x++)
            {
                for (int y = 0; y < 10; y++)
                {
                    Data.spriteBatch.Draw(Data.content.Load<Texture2D>("BlockTextures\\blue"), rects[x, y], Color.White);
                }
            }

            Data.spriteBatch.Draw(Data.logo, new Rectangle((int)(Data.graphics.PreferredBackBufferWidth * 0.5f - 275), 10, 550, 80), Color.White);

            foreach (Button button in buttons)
            {
                button.Render(Data.spriteBatch);
            }
            //buttons[0].Render(Data.spriteBatch);

            _textBox.Draw(Data.spriteBatch);

            base.Render(elapsedTime);
        }

        public override void Update(float elapsedTime)
        {
            if (Keyboard.GetState().IsKeyDown(Keys.Space))
                Data.SetScreen(new GameScreen());

            _textBox.Update();
            
            base.Update(elapsedTime);
        }
    }
}
